package com.ruoyi.sale.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.product.domain.Product;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author WangChangShuo
 * @date 2022年05月26日 9:45
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SaleGoodsOrder extends BaseEntity {
    private Long custmoerId;
    private Long saleorderUserId;
    private String sender;
    private String recipients;
    private String twoDimensionCode;
    private String waybillNo;
    private String orderId;
    private String phone;
    private String beginTime;
    private String endTime;
    /**
     * 销货单主键
     */
    private Long saleGoodsId;
    private String productName;//产品名称
    //销售订单编号
    private String wuliunumber;
    /**
     * 销货单日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date saleGoodsDate;
    /**
     * 销货单编号
     */
    private String saleGoodsNum;
    /**
     * 销售订单主键
     */
    private Long saleorderId;
    /**
     * 销售订单编号
     */
    private String saleorderNum;
    /**
     * 创建人的公司主键deptid
     */
    private Long deptId;
    /**
     * 客户的 customerId
     */
    private Long customerId;

    private Long companyId;
    /**
     * 客户的deptName
     */
    private String deptName;
    /**
     * 业务员主键userid
     */
    private Long userId;
    /**
     * 业务员名称
     */

    private String userName;
    /**
     * 销货单金额
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal saleGoodsAmount;
    /**
     * 销货单含税金额
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal saleGoodsTaxamount;
    /**
     * 税率
     */
    private String taxRate;
    /**
     * 付款方式
     */
    private String payMethod;
    /**
     * 开票类型
     */
    private String billType;
    /**
     * 销货单备注
     */
    private String saleGoodsRemark;
    /**
     * 是否付款
     */
    private String isPay;
    /**
     * 销货单状态
     */
    private String saleGoodsStatus;
    /**
     * 是否生成采购入库订单
     */
    private int isWarehousingOrder;
    /**
     * 销货单审核时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date auditTime;
    /**
     * 是否生成销售退货单
     */
    private String isReturn;
    /**
     * 与SaleGoodsModel 是一对多的关系
     */
    private List<SaleGoodsModel> saleGoodsModels;
    /**
     * 公司地址
     */
    private String companyAdress;
    /**
     * 公司地址
     */
    private String comPhone;
    /**
     * 产品型号
     */
    private List<Product> products;
    /**
     * isInvoice 开票状态
     */
    private String isInvoice;
    private String batch;
    private String productType;

    /** 快递下单状态 */
    private String expressStatus;

    public Long getCustmoerId() {
        return custmoerId;
    }

    public void setCustmoerId(Long custmoerId) {
        this.custmoerId = custmoerId;
    }

    public Long getSaleorderUserId() {
        return saleorderUserId;
    }

    public void setSaleorderUserId(Long saleorderUserId) {
        this.saleorderUserId = saleorderUserId;
    }

    public String getSender() {
        return sender;
    }

    public void setSender(String sender) {
        this.sender = sender;
    }

    public String getRecipients() {
        return recipients;
    }

    public void setRecipients(String recipients) {
        this.recipients = recipients;
    }

    public String getTwoDimensionCode() {
        return twoDimensionCode;
    }

    public void setTwoDimensionCode(String twoDimensionCode) {
        this.twoDimensionCode = twoDimensionCode;
    }

    public String getWaybillNo() {
        return waybillNo;
    }

    public void setWaybillNo(String waybillNo) {
        this.waybillNo = waybillNo;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getBeginTime() {
        return beginTime;
    }

    public void setBeginTime(String beginTime) {
        this.beginTime = beginTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }


    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getWuliunumber() {
        return wuliunumber;
    }

    public void setWuliunumber(String wuliunumber) {
        this.wuliunumber = wuliunumber;
    }

    public Long getSaleorderId() {
        return saleorderId;
    }

    public void setSaleorderId(Long saleorderId) {
        this.saleorderId = saleorderId;
    }

    public Long getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }

    public String getCompanyAdress() {
        return companyAdress;
    }

    public void setCompanyAdress(String companyAdress) {
        this.companyAdress = companyAdress;
    }

    public String getComPhone() {
        return comPhone;
    }

    public void setComPhone(String comPhone) {
        this.comPhone = comPhone;
    }

    public String getBatch() {
        return batch;
    }

    public void setBatch(String batch) {
        this.batch = batch;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public String getIsInvoice() {
        return isInvoice;
    }

    public void setIsInvoice(String isInvoice) {
        this.isInvoice = isInvoice;
    }

    public String getIsReturn() {
        return isReturn;
    }

    public void setIsReturn(String isReturn) {
        this.isReturn = isReturn;
    }

    public List<Product> getProducts() {
        return products;
    }

    public void setProducts(List<Product> products) {
        this.products = products;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public int getIsWarehousingOrder() {
        return isWarehousingOrder;
    }

    public void setIsWarehousingOrder(int isWarehousingOrder) {
        this.isWarehousingOrder = isWarehousingOrder;
    }

    public Long getSaleGoodsId() {
        return saleGoodsId;
    }

    public void setSaleGoodsId(Long saleGoodsId) {
        this.saleGoodsId = saleGoodsId;
    }

    public Date getSaleGoodsDate() {
        return saleGoodsDate;
    }

    public void setSaleGoodsDate(Date saleGoodsDate) {
        this.saleGoodsDate = saleGoodsDate;
    }

    public String getSaleGoodsNum() {
        return saleGoodsNum;
    }

    public void setSaleGoodsNum(String saleGoodsNum) {
        this.saleGoodsNum = saleGoodsNum;
    }

    public String getSaleorderNum() {
        return saleorderNum;
    }

    public void setSaleorderNum(String saleorderNum) {
        this.saleorderNum = saleorderNum;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public BigDecimal getSaleGoodsAmount() {
        return saleGoodsAmount;
    }

    public void setSaleGoodsAmount(BigDecimal saleGoodsAmount) {
        this.saleGoodsAmount = saleGoodsAmount;
    }

    public BigDecimal getSaleGoodsTaxamount() {
        return saleGoodsTaxamount;
    }

    public void setSaleGoodsTaxamount(BigDecimal saleGoodsTaxamount) {
        this.saleGoodsTaxamount = saleGoodsTaxamount;
    }

    public String getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(String taxRate) {
        this.taxRate = taxRate;
    }

    public String getPayMethod() {
        return payMethod;
    }

    public void setPayMethod(String payMethod) {
        this.payMethod = payMethod;
    }

    public String getBillType() {
        return billType;
    }

    public void setBillType(String billType) {
        this.billType = billType;
    }

    public String getSaleGoodsRemark() {
        return saleGoodsRemark;
    }

    public void setSaleGoodsRemark(String saleGoodsRemark) {
        this.saleGoodsRemark = saleGoodsRemark;
    }

    public String getIsPay() {
        return isPay;
    }

    public void setIsPay(String isPay) {
        this.isPay = isPay;
    }

    public String getSaleGoodsStatus() {
        return saleGoodsStatus;
    }

    public void setSaleGoodsStatus(String saleGoodsStatus) {
        this.saleGoodsStatus = saleGoodsStatus;
    }

    public Date getAuditTime() {
        return auditTime;
    }

    public void setAuditTime(Date auditTime) {
        this.auditTime = auditTime;
    }

    public List<SaleGoodsModel> getSaleGoodsModels() {
        return saleGoodsModels;
    }

    public void setSaleGoodsModels(List<SaleGoodsModel> saleGoodsModels) {
        this.saleGoodsModels = saleGoodsModels;
    }

    public void selectSaleGoodsOrder(Map<String, Object> map) {
    }

    public String getExpressStatus() {
        return expressStatus;
    }

    public void setExpressStatus(String expressStatus) {
        this.expressStatus = expressStatus;
    }
}
